In recent years, a high-speed nonvolatile memory called a storage class memory has been developed. A storage class memory is a nonvolatile memory in which it is not only possible to perform the conventional writing and reading of data in units of blocks or pages, but it is also possible to perform writing and reading of data in, for example, units of bytes that are smaller in size than the pages (i.e., a byte-addressable memory). Such a nonvolatile memory in which the writing and reading of data is possible in units of bytes can be used as a main memory device that functions as the work area for a central processing unit (CPU).
Moreover, in recent years, computer systems perform large-scale data processing such as online real-time processing, big data processing, deep learning, and artificial intelligence (AI) processing. In the case of performing such processing, a computer system needs to have the main memory device with a huge memory capacity.
Furthermore, in a data center, or in a robot, or in a drone, or in an edge system such as an edge server; in order to achieve high-speed data processing, in-memory data processing is performed in which large-scale data is processed in the main memory device. A computer system that performs such in-memory data processing needs to have the main memory device with a huge memory capacity.
If all such main memory devices having a huge memory capacity are implemented using the dynamic random access memory (DRAM), then the amount of standby electricity becomes an issue. For that reason, in order to achieve a high-speed and low-power computer system, it is desirable to utilize the storage class memory that is a high-speed memory requiring low standby electricity.
A storage class memory has a higher integration capacity as compared to a DRAM, but generally has a slower access speed as compared to a DRAM. Hence, in a system in which all DRAMs are replaced with storage class memories, the processing speed undergoes a decline. Moreover, generally, a storage class memory requires low standby electricity but requires high dynamic power for accessing. Hence, in a computer system in which the main memory device having a huge memory capacity is to be used, it is preferable to combine a high-speed memory such as a DRAM with a nonvolatile memory device such as a storage class memory requiring low standby electricity and having high integration capacity, and to access the main memory device according to an appropriate memory control method depending on the situation.
However, in a computer system, it is an extremely difficult task to select an appropriate memory control method depending on the situation.